package com.wlyuan.open.api;

import com.wlyuan.open.dto.api.*;
import com.wlyuan.open.vo.OpenApiDetailVO;
import com.wlyuan.utils.Page;

/**
 * @author lijing
 * @description
 */
public interface IOpenApiService {

    /**
     * 创建
     *
     * @param creation
     */
    void create(OpenApiCreationDTO creation);

    /**
     * 查询
     *
     * @param filterDTO
     * @return
     */
    Page<OpenApiDetailVO> search(OpenApiFilterDTO filterDTO);

    /**
     * 获取有效的接口列表
     *
     * @param filter
     * @return
     */
    Page<OpenApiDetailVO> getAllInvalidApi(OpenApiFilterDTO filter);

    /**
     * 根据id获取信息
     *
     * @param apiId
     * @return
     */
    OpenApiDetailVO getApiId(Long apiId);

    /**
     * 启用
     *
     * @param enable
     */
    void enable(OpenApiEnableDTO enable);

    /**
     * 禁用
     *
     * @param disable
     */
    void disable(OpenApiDisableDTO disable);

    /**
     * 修改
     *
     * @param update
     */
    void update(OpenApiUpdateDTO update);

    /**
     * 根据url和请求方式获取接口
     *
     * @param url
     * @param method
     * @return
     */
    OpenApiDetailVO getByUrlMethod(String url, String method);
}
